第二周学习内容回顾
第二周完成了项目需求分析、技术选型和架构设计三大核心主题的学习。其中架构设计部分是最具挑战性的内容,涉及大量新概念和系统化思维。
知识脉络梳理
需求分析(2-1 ~ 2-5)
从项目背景出发,学习了完整的需求分析工作流:
- 项目整体设计:背景分析、目标定义、限制条件
- 业务需求分析:业务范围与定位、流程关键点、外部依赖、业务指标
- 技术需求分析:技术选型、非功能性需求、技术难点与风险、技术规范
- 用户需求与竞品分析:用户画像、使用场景、竞品功能对比
- 整体需求总结:整合各维度分析,形成完整的需求画像
技术选型(3-1 ~ 3-4)
技术选型的系统化方法论:
- 全局思维:七步选型法(需求分析 → 市场调研 → 兼容性评估 → 成本评估 → 风险评估 → 试点验证 → 持续评估)
- 折中艺术:六大权衡维度(性能vs易用性、短期vs长期、丰富vs简洁、稳定vs创新、开源vs商业、安全vs便利)
- 功能拆分:三维度拆分法(业务维度 → 功能维度 → 资源维度),主链路优先
- 技术栈维护:依赖更新监测、测试验证、灰度发布策略
架构设计(4-1 ~ 4-9)
架构设计的五大维度:
| 维度 | 核心内容 | 关键概念 |
|---|---|---|
| 扩展性 | 水平扩展 vs 垂直扩展 | Scale Up / Scale Out |
| 高性能 | TPS、QPS、缓存、异步 | 多级缓存、消息队列 |
| 高可用 | 冗余、容灾、多活 | RPO、RTO、熔断降级 |
| 高安全 | 认证授权、加密、WAF | JWT、HTTPS、RBAC |
| 可伸缩 | 微服务、容器化、K8s | Docker、Pod、HPA |
文档与接口设计(5-1 ~ 6-2)
- Markdown:技术文档编写的必备技能
- 项目文档分类:产品文档、接口文档、系统文档、技术文档、用户文档
- RESTful设计:资源导向、HTTP语义化、响应格式规范
- 接口文档工具:Swagger/OpenAPI、Apifox、YApi
推荐延伸阅读
- 架构设计笔记:涵盖架构类型、模式、验证方法等概念详解
- 架构师课程笔记:后端架构师的视角,包含架构设计坑点和流派介绍
- 微服务架构设计模式:一本系统讲解微服务架构设计考量的书籍,涵盖服务通信、业务逻辑设计、数据管理等主题
- 课程架构设计文档:完整的课程项目架构设计,包含业务架构图、集群架构分析、微服务治理方案
实践项目
课程提供了一个灰度发布的Nginx示例项目,演示了如何通过Nginx配置实现流量分配(如80%流量到v1版本,20%流量到v2版本)。建议将项目在本地运行,通过实际操作加深对灰度发布机制的理解。
学习建议
架构设计部分的内容比较抽象,建议:
- 结合课程提供的架构文档反复阅读
- 在工作中找机会实践需求分析的流程
- 尝试绘制自己项目的架构图
- 关注业界大厂的技术博客,了解真实生产环境的架构实践
↑